//app.js
//scanCode扫码存储groupId、subCode 
import ajaxhelper from './utils/ajaxhelper.js';
import { signByMd5 } from "./utils/util";
App({
  onLaunch: function (options) { 
    // 给date对象原型增加一个方法 把时间格式处理为yy-mm-dd
    this.format() ;
    this.arrayToJson();
    this.backgroundAudioManager = wx.getBackgroundAudioManager();//全局
  }, 
  // 给date对象原型加一个数据格式的方法
  format:function(){
    Date.prototype.format = function (format) {
      var date = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        "S+": this.getMilliseconds()
      };
      if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
      }
      for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
          format = format.replace(RegExp.$1, RegExp.$1.length == 1
            ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
        }
      }
      return format;
    }
  },
  arrayToJson(){
    Array.prototype.arrayToJson = function (key) {
      var result = {}, obj;
      for (var i = 0; i < this.length; i++) {
        obj = this[i][key], (typeof obj != "undefined") && (result[obj] = this[i]);
      }
      return result;
    };
  },
  arrayReapeat(){
    // 数组去重
    Array.prototype.unique = function (key) {
      var res = [];
      var json = {};
      if (key) {
        for (var i = 0; i < this.length; i++) {
          if (!json[this[i][key]]) {
            res.push(this[i]);
            json[this[i][key]] = 1;
          }
        }
      } else {
        for (var i = 0; i < this.length; i++) {
          if (!json[this[i]]) {
            res.push(this[i]);
            json[this[i]] = 1;
          }
        }
      }

      return res;
    }
  },
  // 秒转为分秒 不转为分秒 如70分钟转为70分0秒 
  timeFormat: function (time) {
    // var minutes = parseInt(time / 60 % 60, 10);//计算剩余的分钟 
    var minutes = parseInt(time / 60, 10);//计算剩余的分钟 
    var seconds = parseInt(time % 60, 10);//计算剩余的秒数 
    minutes = checkTime(minutes);
    seconds = checkTime(seconds);
    function checkTime(i) { //将0-9的数字前面加上0，例1变为01 
      if (i < 10) {
        i = "0" + i;
      }
      return i;
    }

    var timeObj = {
      minute: minutes,
      second: seconds
    }
    return timeObj
  },
  //转为时分秒
  timehouFormat: function (time) {
    var days = parseInt(time / 60 / 60 / 24, 10); //计算剩余的天数 
    var hours = parseInt(time / 60 / 60 % 24, 10); //计算剩余的小时 
    var minutes = parseInt(time / 60 % 60, 10);//计算剩余的分钟 
    var seconds = parseInt(time % 60, 10);//计算剩余的秒数 
    days = checkTime(days);
    hours = checkTime(hours);
    minutes = checkTime(minutes);
    seconds = checkTime(seconds);
    function checkTime(i) { //将0-9的数字前面加上0，例1变为01 
      if (i < 10) {
        i = "0" + i;
      }
      return i;
    }

    var timeObj = {
      day: days,
      hour: hours,
      minute: minutes,
      second: seconds
    }
    return timeObj
  },

  // 全局检测有没有背景音乐
  checkPlay(Cindex) {
    var that = Cindex;
    var backgroundAudioManager = this.backgroundAudioManager;
    // 背景音乐正在播放  backgroundAudioManager.paused!=undefiend的目的是为了检测第一次播放音乐
    console.log(backgroundAudioManager.currentTime);
    console.log(backgroundAudioManager.paused)
    console.log('src为'+backgroundAudioManager.src)
    if (backgroundAudioManager.currentTime == 0 || !backgroundAudioManager.src){
      // that.closeGloalVideo();//支付后关闭全局音乐
      that.setData({
        isPlayGloalAudio: false,
        isPlay: false,
      });
      return false
    }
    if (!backgroundAudioManager.paused && backgroundAudioManager.paused != undefined) {
      var duration = backgroundAudioManager.duration ? Math.ceil(backgroundAudioManager.duration) : 0;//视频长度
      var currentTime = backgroundAudioManager.currentTime ? Math.ceil(backgroundAudioManager.currentTime) : 0;//背景音乐已经播放的位置;
      that.showGloalAudio();
      that.setData({
        isPlay: true
      })
      // // // 获取全局音频信息
      // var urlObj = wx.getStorageSync('gloalObjUrl');
      // urlObj = urlObj ? JSON.parse(urlObj) : {};
      // that.setData({
      //   gloalObjUrl: urlObj,
      //   playUrl: urlObj.url||'',
      //   currentPlayId: urlObj.id,
      //   curPlayIndex: urlObj.index,//正在播放的序号
      // })
    } else if (backgroundAudioManager.paused) {  //在暂停 checkPlayList判断是否是前一首下一首 如果为true意思就是重新获取url
      var duration = backgroundAudioManager.duration ? Math.ceil(backgroundAudioManager.duration) : 0;//视频长度
      var currentTime = backgroundAudioManager.currentTime ? Math.ceil(backgroundAudioManager.currentTime) : 0;//背景音乐已经播放的位置;
      that.showGloalAudio();
      that.setData({
        isPlay: false,
      })
      // // 获取全局音频信息
      // var urlObj = wx.getStorageSync('gloalObjUrl');
      // urlObj = urlObj ? JSON.parse(urlObj) : {};
      // that.setData({
      //   gloalObjUrl: urlObj,
      //   playUrl: urlObj.url || '',
      //   currentPlayId: urlObj.id,
      //   curPlayIndex: urlObj.index,//正在播放的序号
      // })
    }
    //音频结束
    backgroundAudioManager.onEnded(function () {
      that.setData({
        isPlay: false
      })
      ////
      if (that.data.curPlayIndex >= that.data.resourcesList.length - 1) {
        wx.showToast({
          title: '最后一首了',
          icon: 'loading'
        })
        that.setData({
          curPlayIndex: that.data.resourcesList.length
        })
        return false
      }
      /////
      // 获取全局音频信息 去缓存中取该资源是否付费
      var urlObj = wx.getStorageSync('gloalObjUrl');
      urlObj = urlObj ? JSON.parse(urlObj) : {};
      if (urlObj.canView) {
        that.setData({
          canView: true
        })
      }
      that.playNextAudio()
    })
    backgroundAudioManager.onError(function () {
      that.setData({
        isPlay: false
      })

    })
    // 监听音乐播完这一首后的动作 不让自动播放下一首 解决如果没有gechu
    // backgroundAudioManager.onEnded(function () {
    //   that.setData({
    //     isPlay: false,
    //     isPlayGloalAudio:false
    //   })
      
    // })
    // backgroundAudioManager.onError(function () {
    //   that.setData({
    //     isPlay: false,
    //     isPlayGloalAudio:false
    //   })

    // })
  },
  // 播放量接口统计
  // sourceId 资源id(不是课程id)
  // sourceType 视频音频类型
  addHit(sourceId, sourceType) {
    try {
      var token = (wx.getStorageSync('Token_date') && wx.getStorageSync('Token_date').Token) || '';
      let param = {
        // 'Token': token,
      }
      wx.request({
        method: 'PUT',
        url: this.globalData.frontJSHost + 'count/addHit/' + sourceType + '/' + sourceId,
        // data: {},
        dataType: 'json',
        header: {
          'content-type': 'application/json' // 默认值
        },
        success: function (res) {

        },
        fail() {

        }
      })
    } catch (e) {

    }

  },
  // 播放记录统计
  //countType 计数类型
  // sourceId 资源id(不是课程id)
  // sourceType 视频音频类型
  playTimeCount(sourceId, sourceType, countType) {
    try {
      var token = (wx.getStorageSync('Token_date') && wx.getStorageSync('Token_date').Token) || '';
      let param = {
        // 'Token': token,
      }
      wx.request({
        method: 'PUT',
        url: this.globalData.frontJSHost + 'count/addPlayRecord/' + sourceType + '/' + sourceId + '/' + countType + '?token=' + encodeURIComponent(token),
        // data: {},
        dataType: 'json',
        header: {
          'content-type': 'application/json' // 默认值
        },
        success: function (res) {

        },
        fail() {

        }
      })
    } catch (e) {

    }

  },
  globalData:{
    // userInfo:null,
    // userParam:null,  
    setIntervalId:'',//音频播放的定时器id
    // PlayGloalStaus:false,//背景音乐的状态 0 暂停 1 播放 2没有背景音乐
    // 测试环境
    //  frontJSHost:"http://121.43.39.120:10081/cc-knowledge-web/", 
    frontJSHost: "http://10.10.1.21:30921/", 
    // 生产环境 
    // frontJSHost: "https://www.lingkc.com/",
    orderPrivatekey:"KrBwaNoqaaGqBWREPghLqSrKOQBX5GH9",   
  }, 
 
})



